In the practice of electronic color imaging it is often desirable to print a digital color image using a digital color printer such as a thermal printer. The color image may be represented as a set of three color planes, usually red, green, and blue (RGB). Alternatively, it may be represented as the set of four color planes, usually cyan, magenta, yellow and black (CMYK). The color printer usually prints the image by printing one color plane at a time in a prescribed order, e.g., in a four color system, the cyan plane may be printed first, the magenta next, followed by the yellow and finally the black plane.
Two classes of memory configurations are common for color printers. The first class applies to low cost printers. Here only a stripe (subsection) of a single color plane is employed. When the printer completes the printing of this stripe, the printer waits until it receives more data. There are three concerns with this type of configuration. The first is that the server (i.e. the computer asking the printer for service) must buffer the data while the printer is printing. This can consume large amounts of disk space and slow down the computer response time due to the system interruptions necessary to manage this buffer. Second, the network line to the printer will be busy throughout the printing process, which causes a prolonged delay for other users who are sharing the network. Finally, delays in the network connection can cause a delay in providing the image data to the printer. This requires a print head that is capable of stopping and resuming in the middle of the printing process, creating additional engineering and hardware costs that are not desirable.
The second class of printers includes higher end color printers that contain sufficient local memory for storing the entire image at the time of printing. In general, given the high price of solid state memory (e.g., SRAM and DRAM), it is desirable to keep the printer memory requirements to a minimum. Also, in order to expedite the data transfer process for the printing of the next image, it is desirable to discard the data related to each color plane of the current image once it has been printed, so that the memory thus made available can be used to download the color planes of the next image in the printer queue.
In order to satisfy these requirements, in the prior art, each color plane of the image to be printed is compressed independently using a compression scheme such as the lossy or the lossless JPEG compression standard. The JPEG compression standard is explained in detail in ITU Recommendations T.81, T.83 and T.84, or alternatively, in ISO/IEC International Standards, 10918-1, 10918-2, and 10918-3.
It is well known that, in general, there exists a significant correlation between the various color planes of a color image. Consequently, to increase the amount of compression achieved on a color image, this correlation should be reduced to the extent possible prior to the compression process. A conventional method of reducing the correlation among the color planes is to apply a linear decorrelating transformation to the color planes. This is sometimes referred to also as a color space rotation. For example, if the color image is represented as RGB tri-stimulus, it can be transformed into another color space representation such as the YUV luminance-chrominance space. Many different standard and proprietary color space transformations exist and the equations for such transformations have been documented in the literature.
Although applying a conventional color space transformation to the color image data prior to compression (e.g., with the JPEG standard) increases the amount of compression achieved in printers, it does not allow the data that corresponds to a certain color plane to be discarded after that color plane has been printed. As an example, consider the YUV luminance-chrominance color space representation of an RGB color image. Further, assume that the order in which the color planes are printed is blue, red, and green, respectively, and that the decompression and printing of each color plane is done in stripes. The first step in this process would be to decompress a stripe of the compressed YUV color planes. Next, a stripe of the blue color plane would be reconstructed from the decompressed YUV stripes and printed. Since the same YUV color planes are needed in order to also reconstruct the red and the green color planes, no stripes of the compressed data can be discarded until the whole color image has been printed. That is why in prior art each RGB (or CMYK) color plane is independently compressed and then decompressed at the time of printing.
There is a need therefore to improve the performance of image compression in this second class of printers to minimize the cost of the printer memory.